package day4.HomeWork;

import java.util.*;

/**
 * ClassName：Test5
 *
 * @Author：小鱼
 * @Create：2025-08-14 18:21
 */
public class Test5 {
    /*
    5.综合练习
        (1)键盘录⼊整⾏字符串，遇到quit结束录⼊，录⼊字符串格式为：学号.姓名.年龄.分数
        【示例】
        001.zs.20.68
        003.tom.19.78
        quit
        (2)拆解上述整⾏的字符串得到属性值，然后实例化学⽣对象，按照"."分割字符串
        (3)将学⽣对象添加到Map<学⽣,学号>集合中，要求：添加时 按照成绩逆序排列
        (4)遍历输出集合
        (5)判断 003号学⽣是否存在，如果存在，删除该学⽣
        (6)再次遍历集合（使用另外一种方式）
    */
    public static void main(String[] args) {
        Map<Student,String> map = new TreeMap<>();
        //键盘录⼊整⾏字符串，遇到quit结束录⼊，录⼊字符串格式为：学号.姓名.年龄.分数
        System.out.println("请输入你的信息（格式为：学号.姓名.年龄.分数），输入quit结束录⼊");
        Scanner sc = new Scanner(System.in);
        while (true){
            String s = sc.nextLine();

            // 遇到quit结束录入
            if ("quit".equalsIgnoreCase(s)) {
                break;
            }
            //拆解上述整⾏的字符串得到属性值，然后实例化学⽣对象，按照"."分割字符串
            String[] result = s.split("\\.");
            Student student = new Student(result[0],result[1],Integer.parseInt(result[2]),Double.parseDouble(result[3]));
            //将学⽣对象添加到Map<学⽣,学号>集合中，要求：添加时 按照成绩逆序排列
            map.put(student, student.getId());
        }


        //遍历输出集合
        System.out.println("学生信息为：");
        Set<Map.Entry<Student,String>> entries = map.entrySet();
        for (Map.Entry<Student, String> entry : entries) {
            System.out.print(entry.getKey()+"-");
            System.out.println(entry.getValue());
        }


        //判断 003号学⽣是否存在，如果存在，删除该学⽣
        for (Map.Entry<Student, String> entry : entries) {
            if(entry.getValue().equals("003")){
                map.remove(entry.getKey());
                break;
            }else {
                System.out.println("003学生不存在");
            }
        }


        //再次遍历集合（使用另外一种方式）
        System.out.println("修改后学生信息为：");
        Set<Student> set = map.keySet();
        for (Student student1:set) {
            System.out.println(student1+"-"+map.get(student1));
        }

    }
}
